package com.qidianit.task.service;

import com.qidianit.task.pojo.Project;
import com.qidianit.task.util.pojo.QdResult;

import java.util.List;

public interface ProjectService {
    /**
     * 分页查询项目
     * @param project 封装查询条件
     * @param page 要查询的页码
     * @param limit 每页大小
     * @return
     */
    QdResult selectByPage(Project project, int page, int limit);

    /**
     * 通过id查找项目详细情况，返回到弹窗里面
     * @param projectId 查询条件为projectId
     * @return
     */
    QdResult selectById(String projectId);

    /**
     * 通过前端的编辑更新项目
     * @param project
     * @return
     */
    QdResult updateProject(Project project);

    /**
     * 逻辑删除project
     * @param projectId
     * @return
     */
    QdResult deleteProject(String projectId);

    /**
     * 归档project
     * @param projectId
     * @return
     */
    QdResult pigeonholeProject(String projectId);
    //批量删除
    QdResult deleteBySelect(List<String> projectIds);
    //批量归档
    QdResult pigeonholeBySelect(List<String> projectIds);
    //批量发布
    QdResult publishBySelect(List<String> projectIds);
    //查询删除列表
    QdResult selectDeleteByPage(Project project, int page, int limit);
    //在全部归档表格中，恢复按钮的功能，将归档改为草稿
    QdResult draftById(String projectId);

    //欢迎页的全部项目的统计
    QdResult allProject();
    //欢迎页我的项目的全部统计
    QdResult myAllProject(Long userId);
}
